home *** CD-ROM | disk | FTP | other *** search
/ Nibble Magazine / nib15.dsk / BOUNCING NUMBERS.bas < prev    next >
BASIC Source File  |  2023-02-26  |  8KB  |  180 lines

  1. 1  REM  **********************
  2. 2  REM  *  BOUNCING NUMBERS  *
  3. 3  REM  * BY KEVIN D. RILEY  *
  4. 4  REM  * COPYRIGHT (C) 1983 *
  5. 5  REM  * BY MICROSPARC, INC *
  6. 6  REM  * LINCOLN, MA. 01773 *
  7. 7  REM  **********************
  8. 10  TEXT : HOME : VTAB 12: PRINT "** COPYRIGHT 1983 BY MICROSPARC, INC. **": PRINT  CHR$(4);"BLOAD MSOUND"
  9. 15  PRINT  CHR$(4);"BLOAD NUMBER TABLE": HIMEM: 8192: DIM A(11):A = 37: HOME : SPEED= 0:SN =  -16336
  10. 20  FOR I = 3 TO 10: HTAB I: VTAB 10
  11. 25  PRINT "*":SO =  PEEK(SN) - PEEK(SN):A = A -2: HTAB (I +A): VTAB 10: PRINT "*":SO =  PEEK(SN) - PEEK(SN)
  12. 30  NEXT I: SPEED= 255
  13. 35  VTAB 10: HTAB 12: PRINT "NUMBER RECOGNITION"
  14. 40  FOR L = 1 TO 11: FOR T = 1 TO 500: NEXT T: CALL  -912
  15. 45 SO =  PEEK(SN) - PEEK(SN): NEXT L
  16. 50  HOME : PRINT "THIS IS NUMBER RECOGNITION FOR"
  17. 55  PRINT "PRESCHOOLERS.  THE IDEA OF THIS PROGRAM": PRINT "IS TO TEACH PRESCHOOLERS HOW TO"
  18. 60  PRINT "RECOGNIZE NUMBER SHAPES."
  19. 65  PRINT "A RANDOM NUMBER WILL APPEAR.  SAY THE"
  20. 70  PRINT "NUMBER TO THE CHILD; HAVE THE CHILD SAY"
  21. 75  PRINT "IT BACK.": PRINT "NOW LET THE CHILD FIND THE RIGHT KEYS"
  22. 80  PRINT "TO MAKE UP THE NUMBER.  AFTER PRESSING": PRINT "THE RIGHT KEYS A NEW NUMBER WILL COME UP"
  23. 85  VTAB 22: PRINT "*** HIT ANY KEY TO CONTINUE ***": GET A$
  24. 90  HOME : HTAB 8: VTAB 10: PRINT "TYPE IN THE (+) CHARACTER"
  25. 95  HTAB 11: VTAB 12: PRINT "TO END THE PROGRAM."
  26. 100  VTAB 22: PRINT "*** HIT ANY KEY TO CONTINUE ***": GET A$
  27. 105  HOME : VTAB 12: PRINT "HOW MANY GUESSES AT EACH NUMBER WOULD": PRINT "YOU LIKE."
  28. 110  PRINT : INPUT "INPUT NUMBER OF GUESSES (1 TO 5) AND    HIT RETURN";G: PRINT : PRINT 
  29. 115  IF (G >0)  AND (G <6)  THEN 125
  30. 120  PRINT "THAT WAS NOT BETWEEN 1 AND 5": FOR T = 1 TO 2000: NEXT T: GOTO 105
  31. 125  HOME : HTAB 7: VTAB 11: PRINT "DO YOU WANT MUSIC (YES / NO)?": GET Z$
  32. 130  IF (Z$ = "N")  OR (Z$ = "Y")  THEN 140
  33. 135  GOTO 125
  34. 139  REM  ***** DRAW MOUSE *****
  35. 140  POKE 232,1: POKE 233,96: HGR2 : TEXT : HOME : HCOLOR= 3
  36. 145  HPLOT 75,106 TO 76,111 TO 79,119 TO 90,128 TO 105,133 TO 118,133 TO 124,138 TO 129,140 TO 136,146 TO 142,145 TO 148,134
  37. 150  HPLOT 145,140 TO 154,138 TO 165,132 TO 182,118 TO 187,110 TO 189,102 TO 189,93 TO 193,102 TO 200,107 TO 217,111
  38. 155  HPLOT 217,111 TO 237,107 TO 247,99 TO 250,81 TO 245,71 TO 236,65 TO 222,60 TO 211,62 TO 201,66 TO 196,70 TO 190,78
  39. 160  HPLOT 190,78 TO 188,70 TO 186,66 TO 180,60 TO 188,59 TO 199,60 TO 211,56 TO 216,46 TO 215,35 TO 207,24 TO 192,15
  40. 165  HPLOT 192,15 TO 178,11 TO 165,11 TO 155,15 TO 149,23 TO 147,33 TO 150,41 TO 155,48 TO 146,44 TO 129,40 TO 140,46 TO 133,44
  41. 170  HPLOT 133,44 TO 123,46 TO 131,48 TO 124,51 TO 115,54 TO 105,61 TO 96,75 TO 94,84 TO 94,93 TO 89,92 TO 82,95
  42. 175  HPLOT 82,95 TO 79,89 TO 76,87 TO 70,87 TO 66,91 TO 65,98 TO 70,103 TO 75,106 TO 80,107 TO 85,103 TO 83,94
  43. 180  HPLOT 95,92 TO 102,95 TO 109,100 TO 112,105 TO 115,110
  44. 185  HPLOT 117,130 TO 125,128 TO 134,125 TO 140,120 TO 140,115 TO 140,124 TO 143,130 TO 141,135 TO 138,140 TO 136,139 TO 131,135 TO 133,125
  45. 190  HPLOT 142,129 TO 137,132 TO 138,135 TO 136,131 TO 132,135
  46. 195  HPLOT 131,116 TO 137,114 TO 144,115 TO 149,117
  47. 200  HPLOT 160,135 TO 166,122 TO 170,111 TO 167,104 TO 161,99 TO 153,97 TO 142,100 TO 128,105 TO 138,95 TO 147,83 TO 150,74 TO 152,64
  48. 205  HPLOT 152,64 TO 150,57 TO 146,54 TO 143,53 TO 137,55 TO 130,61 TO 132,56 TO 132,50 TO 129,50
  49. 210  HPLOT 136,78 TO 133,72 TO 130,70 TO 123,73
  50. 215  HPLOT 115,70 TO 114,64 TO 113,63 TO 106,67
  51. 220  HPLOT 111,103 TO 117,100 TO 122,94 TO 125,87 TO 123,79 TO 120,79 TO 114,81 TO 111,87 TO 109,94 TO 107,99
  52. 225  HPLOT 103,94 TO 105,90 TO 108,85 TO 110,74 TO 106,71 TO 102,74 TO 99,81 TO 97,87 TO 98,92
  53. 230  HPLOT 123,89 TO 121,89 TO 118,90 TO 115,94 TO 116,100
  54. 235  HPLOT 108,80 TO 106,81 TO 103,85 TO 102,88 TO 105,93
  55. 240  GOSUB 5000
  56. 244  REM  ***** DRAW BOX *****
  57. 245 W = 0: HGR 
  58. 250 W = W +1:TRY = 0
  59. 255  IF W = 12  THEN 240
  60. 260  IF Q = 1  THEN 340
  61. 265 A =  INT(7 * RND(1)) +1
  62. 270  IF A = 4  THEN 265
  63. 275  FOR I = 10 TO 139  STEP 2
  64. 280  HCOLOR= A
  65. 285  HPLOT 50,I TO 60,I
  66. 290  NEXT 
  67. 295  FOR I = 140 TO 145  STEP 2
  68. 300  HPLOT 50,I TO 220,I
  69. 305  NEXT 
  70. 310  FOR I = 144 TO 10  STEP  -2
  71. 315  HPLOT 220,I TO 230,I
  72. 320  NEXT 
  73. 325  FOR I = 10 TO 15  STEP 2
  74. 330  HPLOT 220,I TO 60,I
  75. 335  NEXT 
  76. 340 B =  INT(7 * RND(1)) +1
  77. 345  IF B = 4  THEN 340
  78. 350  FOR I = 9 TO 140  STEP 2
  79. 355  HCOLOR= B
  80. 360  HPLOT 50,I TO 60,I
  81. 365  NEXT 
  82. 370  FOR I = 141 TO 145  STEP 2
  83. 375  HPLOT 50,I TO 220,I
  84. 380  NEXT 
  85. 385  FOR I = 145 TO 9  STEP  -2
  86. 390  HPLOT 220,I TO 230,I
  87. 395  NEXT 
  88. 400  FOR I = 9 TO 14  STEP 2
  89. 405  HPLOT 220,I TO 60,I
  90. 410  NEXT 
  91. 415 Q = 1
  92. 420 E =  INT(3 * RND(1)) +1
  93. 425  ON E GOTO 1000,2000,3000
  94. 999  REM  SPIN NUMBER ONTO SCREEN
  95. 1000  HCOLOR= 3: SCALE= 1:M = 10
  96. 1005  FOR R = 0 TO 64  STEP 16
  97. 1010  ROT= R
  98. 1015 M = M +25
  99. 1020 SO =  PEEK(SN) - PEEK(SN) - PEEK(SN) - PEEK(SN)
  100. 1025  XDRAW A(W) AT M,79
  101. 1030  FOR T = 1 TO 150: NEXT T
  102. 1035 SO =  PEEK(SN) - PEEK(SN)
  103. 1040  XDRAW A(W) AT M,79
  104. 1045  NEXT R
  105. 1050 SO =  PEEK(SN) - PEEK(SN) - PEEK(SN)
  106. 1055  DRAW A(W) AT 139,79
  107. 1060  GOSUB 6000
  108. 1065  XDRAW A(W) AT 139,79: GOTO 250
  109. 1999  REM  RUN NUMBER ONTO SCREEN
  110. 2000  HCOLOR= 3: ROT= 0: SCALE= 1
  111. 2005  FOR I = 265 TO 139  STEP  -15
  112. 2010 SO =  PEEK(SN) - PEEK(SN)
  113. 2015  XDRAW A(W) AT I,79
  114. 2020  NEXT 
  115. 2025  FOR I = 265 TO 139  STEP  -15
  116. 2030 SO =  PEEK(SN) - PEEK(SN)
  117. 2035  XDRAW A(W) AT I,79
  118. 2040  NEXT 
  119. 2045 SO =  PEEK(SN) - PEEK(SN)
  120. 2050  DRAW A(W) AT 139,79
  121. 2055  GOSUB 6000
  122. 2060  XDRAW A(W) AT 139,79: GOTO 250
  123. 2999  REM  POP NUMBER ONTO SCREEN
  124. 3000  HCOLOR= 3: SCALE= 1: ROT= 0
  125. 3005  FOR I = 1 TO 5
  126. 3010 X =  INT(200 * RND(1)) +20
  127. 3015 Y =  INT(100 * RND(1)) +20
  128. 3020  XDRAW A(W) AT X,Y
  129. 3025 SO =  PEEK(SN) - PEEK(SN) - PEEK(SN) - PEEK(SN) - PEEK(SN) - PEEK(SN)
  130. 3030  FOR T = 1 TO 150: NEXT T
  131. 3035  XDRAW A(W) AT X,Y
  132. 3040 SO =  PEEK(SN) - PEEK(SN) - PEEK(SN) - PEEK(SN) - PEEK(SN) - PEEK(SN)
  133. 3045  NEXT I
  134. 3050  DRAW A(W) AT 139,79
  135. 3055 SO =  PEEK(SN) - PEEK(SN)
  136. 3060  GOSUB 6000
  137. 3065  XDRAW A(W) AT 139,79: GOTO 250
  138. 3999  REM  SHOW HGR2 WITH OR WITHOUT MUSIC
  139. 4000  POKE  -16302,0: POKE  -16299,0
  140. 4005  IF Z$ = "N"  THEN 4070
  141. 4010  POKE 768,193: POKE 769,150: CALL 770
  142. 4015  POKE 768,193: POKE 769,50: CALL 770
  143. 4020  POKE 768,193: POKE 769,175: CALL 770
  144. 4025  POKE 768,193: POKE 769,150: CALL 770
  145. 4030  POKE 768,193: POKE 769,50: CALL 770
  146. 4035  POKE 768,193: POKE 769,175: CALL 770
  147. 4040  POKE 768,153: POKE 769,100: CALL 770
  148. 4045  POKE 768,193: POKE 769,80: CALL 770
  149. 4050  POKE 768,172: POKE 769,80: CALL 770
  150. 4055  POKE 768,199: POKE 769,100: CALL 770
  151. 4060  POKE 768,193: POKE 769,100: CALL 770
  152. 4065  POKE  -16302,0: POKE  -16300,0: RETURN 
  153. 4070  FOR I = 0 TO 2000: NEXT : POKE  -16302,0: POKE  -16300,0: RETURN 
  154. 4999  REM  * SHUFFLE NUMBERS *
  155. 5000  HGR : GR : HOME : HTAB 10: VTAB 22: PRINT "SHUFFLING THE NUMBERS"
  156. 5005  FOR C = 1 TO 11:A(C) = 0: NEXT C
  157. 5010  FOR D = 1 TO 11
  158. 5015 N =  INT(11 * RND(1)) +1
  159. 5020  FOR F = 1 TO 11: IF A(F) = N  THEN 5015
  160. 5025  COLOR= N:X =  INT(39 * RND(1)):Y =  INT(39 * RND(1)): PLOT X,Y
  161. 5030 SO =  PEEK( -16336): NEXT F
  162. 5035 A(D) = N: NEXT D
  163. 5040  GR : HOME :Q = 0: RETURN 
  164. 5999  REM  KEYBOARD INPUT ROUTINE
  165. 6000  IF A(W) = 11  THEN 6045
  166. 6005  GET A$:A =  ASC(A$): IF A = 43  THEN  TEXT : HOME : VTAB 12: HTAB 15: PRINT "SEE YOU SOON": END 
  167. 6010  IF (A <48)  OR (A >57)  THEN 6005
  168. 6015 A =  VAL(A$): IF A < >A(W) -1  THEN 6030
  169. 6020  GOSUB 4000
  170. 6025  RETURN 
  171. 6030  FOR I = 0 TO 100:SO =  PEEK( -16336): NEXT I
  172. 6035 TRY = TRY +1: IF TRY = G  THEN  RETURN 
  173. 6040  GOTO 6000
  174. 6045  GET A$:A =  ASC(A$): IF A = 43  THEN  TEXT : HOME : VTAB 12: HTAB 15: PRINT "SEE YOU SOON": END 
  175. 6050  IF (A <48)  OR (A >57)  THEN 6045
  176. 6055  GET B$:B =  ASC(B$): IF (B <48)  OR (B >57)  THEN 6055
  177. 6060 A =  VAL(A$):B =  VAL(B$): IF (A = 1)  AND (B = 0)  THEN 6070
  178. 6065  GOTO 6030
  179. 6070  GOSUB 4000
  180. 6075  RETURN